import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;

import javax.swing.JFrame;

import org.apache.torque.TorqueException;

import torque.generated.*;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.JSplitPane;
import javax.swing.JButton;

public class VueChargementPartie extends Vue{
	Controleur controleur;
	private JButton btnAnnuler;
	private JButton btnCharger;
	private JSplitPane splitPane;
	private JList listParties;
	private JScrollPane scrollPaneParties;
	private JLabel lblTitre;
	
	public void setControleur(Controleur c){
		controleur=c;
	}
	
	public Controleur getControleur(){
		return controleur;
	}
	
	public VueChargementPartie(Controleur controleur) throws TorqueException{
			super(controleur);
			setTitle("Chargement de partie");
			// Affichage de la fenêtre non redimensionable
			setLocationRelativeTo(this.getParent());
			setVisible(true);
			setResizable(false);
			// Affectation de la dimension minimale pour la fenêtre
			Dimension dimMini = new Dimension();
			dimMini.height = 190;
			dimMini.width = 490;
			setMinimumSize(dimMini);
			// Ajout du layout a la fenêtre (position absolue)
			getContentPane().setLayout(null);
			
			lblTitre = new JLabel("Sélectionnez la partie que vous voullez charger dans la liste :");
			lblTitre.setBounds(12, 0, 439, 15);
			getContentPane().add(lblTitre);
			
			scrollPaneParties = new JScrollPane();
			scrollPaneParties.setBounds(12, 27, 454, 78);
			getContentPane().add(scrollPaneParties);
			
			listParties = new JList();
			scrollPaneParties.setViewportView(listParties);
			
			splitPane = new JSplitPane();
			splitPane.setBounds(12, 117, 276, 27);
			getContentPane().add(splitPane);
			
			btnAnnuler = new JButton("Annuler");
			btnAnnuler.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					getControleur().fermerVue(VueChargementPartie.this);
					try {
						getControleur().lancerVueMenuJeu();
					} catch (Exception e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});
			splitPane.setLeftComponent(btnAnnuler);
			
			btnCharger = new JButton("Charger");
			splitPane.setRightComponent(btnCharger);
			//this.afficherInterfaceChargement();
	}
	
//	public void afficherInterfaceChargement() throws TorqueException{
//		//	affiche a l'écran le menu de chargement de partie
//		System.out.println("Chargement de la Partie:");
//		List<Partie> listeParties= torque.generated.PartiePeer.doSelectAll();
//		Integer nbPartie=1;
//		if (listeParties.size()!=0){
//			for (Iterator<Partie> iter = listeParties.iterator(); iter.hasNext();) {
//			    Partie partie = iter.next();
//			    String nomPartie = partie.getNomp();
//			    Date datePartie = partie.getDatep();
//			    GregorianCalendar gDatePartie = getControleur().dateToCalendar(datePartie);
//			    System.out.print(nbPartie);
//			    System.out.println(". " + nomPartie 
//			    						+ " "
//									    + IO.ecrireDateComplete(gDatePartie) + "/" 
//								  );
//			    nbPartie++;
//			}
//			System.out.println("Tappez le numero de la partie à charger :");
//			Integer numPartie = IO.lireEntier(); 
//			Partie partieAjoute = listeParties.get(numPartie-1);
//			this.getControleur().lancerPartieSauvee(partieAjoute);
//		}
//		else{
//			System.out.println("Aucune partie ne peux être chargée.");
//		}
//		
//	}
}

